#ifndef IRUTILS_H_
#define IRUTILS_H_

#include <stdint.h>
#include "esp_check.h"
#include "esp_log.h"

#define IR_LEARN_CHECK(a, str, ret_val)                           \
    if (!(a)) {                                                   \
        ESP_LOGE(TAG, "%s(%d): %s", __FUNCTION__, __LINE__, str); \
        return (ret_val);                                         \
    }

#define IR_LEARN_CHECK_GOTO(a, str, err_code, label)                           \
    if (!(a)) {                                                                \
        ESP_LOGE(TAG, "%s:%d (%s):%s", __FILE__, __LINE__, __FUNCTION__, str); \
        ret = err_code;                                                        \
        goto label;                                                            \
    }
uint8_t sumBytes(const uint8_t * const start, const uint16_t length,
                 const uint8_t init);

#endif  // IRUTILS_H_
